"use strict";

/**
 * 辅助开发和测试Maven Helper的依赖分析器功能的脚本
 */

// 检查DOM中是否存在指定ID的元素
function checkElementExists(id) {
    const element = document.getElementById(id);
    console.log(`检查元素 ${id}: ${element ? '存在' : '不存在'}`);
    return element !== null;
}

// 检查依赖树标签和内容
function checkTreeTabElements() {
    console.log('开始检查依赖树相关元素...');
    
    // 检查依赖树标签
    const treeTab = document.querySelector('.tab[data-tab="tree"]');
    console.log('依赖树标签元素:', treeTab ? '找到' : '未找到');
    
    if (treeTab) {
        // 获取标签属性
        const dataTab = treeTab.getAttribute('data-tab');
        console.log('依赖树标签data-tab属性:', dataTab);
    }
    
    // 检查依赖树内容元素
    console.log('树内容元素状态:', checkElementExists('tree-tab'));
    
    // 检查所有标签内容元素
    const allTabContents = document.querySelectorAll('.tab-content');
    console.log('所有标签内容元素ID:');
    allTabContents.forEach(el => {
        console.log(`- ${el.id} (可见性: ${el.classList.contains('active') ? '可见' : '隐藏'})`);
    });
}

// 模拟点击依赖树标签
function clickTreeTab() {
    console.log('模拟点击依赖树标签...');
    const treeTab = document.querySelector('.tab[data-tab="tree"]');
    
    if (treeTab) {
        console.log('找到依赖树标签，触发点击事件');
        treeTab.click();
    } else {
        console.error('未找到依赖树标签，无法点击');
    }
}

// 检查vscode API是否可用
function checkVscodeApi() {
    try {
        const vscode = acquireVsCodeApi();
        console.log('vscode API 可用');
        return true;
    } catch (error) {
        console.error('vscode API 不可用:', error);
        return false;
    }
}

// 手动发送loadTab消息
function sendLoadTabMessage() {
    try {
        const vscode = acquireVsCodeApi();
        console.log('正在手动发送loadTab消息...');
        vscode.postMessage({
            command: 'loadTab',
            tab: 'tree'
        });
        console.log('loadTab消息已发送');
    } catch (error) {
        console.error('发送消息失败:', error);
    }
}

// 导出函数，可在webview console中调用
window._mavenHelperDebug = {
    checkTreeTabElements,
    clickTreeTab,
    checkVscodeApi,
    sendLoadTabMessage
};

console.log('Maven Helper调试助手已加载，您可以通过window._mavenHelperDebug访问调试功能');
